package com.lanchetech.user.service;


import com.lanchetech.bean.dto.*;
import com.lanchetech.bean.request.PageReq;
import com.lanchetech.bean.response.BasePageResp;
import com.lanchetech.bean.response.ResultData;
import com.lanchetech.bean.vo.CreateLotteryRecordVo;
import com.lanchetech.bean.vo.LotteryInfoVO;
import com.lanchetech.bean.vo.LotteryRecordVO;
import com.lanchetech.entity.LotteryRecord;
import com.lanchetech.entity.User;

public interface LotteryService {

    ResultData<LotteryInfoVO> getLotteryByType(User user , Byte type);

    ResultData<BasePageResp<LotteryRecordVO>> getLotteryRecordPage(PageReq req);

    ResultData createLotteryRecord(LotteryDto lotteryDto);

    ResultData<Long> createCoinOrderWithAddress(Long lotteryRecordId, Long addressId);

    ResultData lotteryInfo();

    /**
     * 中奖人名单
     * @param lotteryWinnersDto
     * @return
     */
    ResultData lotteryWinners(LotteryWinnersDto lotteryWinnersDto);

    /**
     * 中奖订单详情
     * @param lotteryOrderDto
     * @return
     */
    ResultData lotteryOrder(LotteryOrderDto lotteryOrderDto);

    /**
     * 中奖记录
     * @param lotteryNewRecordDto
     * @return
     */
    ResultData lotteryNewRecord(LotteryNewRecordDto lotteryNewRecordDto);

    /**
     * 新增收货地址
     * @param addDeliveryAddressDto
     * @return
     */
    ResultData addDeliveryAddress(AddDeliveryAddressDto addDeliveryAddressDto);

    /**
     * 店铺奖品
     * @param shopPrizeDto
     * @return
     */
    ResultData shopPrize(ShopPrizeDto shopPrizeDto);
}